/**
 * 图表信息表修改页面信息的js文件
 * @license MIT
 * @Author Malphite
 * @Date 2023-08-01
 * @description
 *      修改图表信息表基础信息
 *   需要初始化时间控件，初始化表格，将原有信息填充到表格中，再给页面添加一些事件
 *
 */
("use strict");
layui.define(function (exports) {

    /**
     * @constant  模块名称
     * @description  用一个变量保存当前的模块名称
     */
    const KEY = "chartShow";

    /**
     * @constant  id名称
     * @description  用一个变量保存对应的html里面div容器的id
     */
    const ID = "ChartShow";

    /**
     * @constant  请求地址
     * @description  用一个变量保存请求地址
     */
    const URL = LAYER_BASE_URL + "/chart" + "/updateChart";

    var echartsInst;

    /**
     * @namespace  ChartShow 模块对象
     * @description  创建一个对象，用来将所有的操作最后注册到layui中
     */
    let handler = {

        /**
         * @method  主方法
         * @param {*} layero layui弹层的主体dom对象，是一个Jquery对象
         * @param {*} index layui弹层的编号，在执行关闭弹层等操作时被使用
         * @param {*} layopt 保留参数，在layui v2.8 + 这个代表layer对象
         * @param {*} option 对这个弹层的传入的参数
         * @description  这是一个入口方法，它会在layui.layer.open 的 success 回调中被调用
         */
        run: function (layero, index, layopt, option = {}){
            /**
             * 记录下当前的弹层index,在关闭弹层的时候有用
             */
            handler.index = index;
            layero.find('.ChartShow-right .ChartShow-body').html(option.data.genresult);
            echartsInst = echarts.init(
                layero.find('#ChartShow-body').get(0)
            );
            echartsInst.setOption(JSON.parse(option.data.genchart), true, false);
            echartsInst.resize();
        },
        destroy: function () {
            if (echartsInst) {
                echartsInst.dispose();
                echartsInst = null;
            }
        },
    };

    /**
     *  将模块放入layui中
     */
    exports(KEY, handler);
});
